// Next, transform all dependencies into a list of possible candidates which
// can satisfy that dependency.
- let mut deps = try!(deps.into_iter().map(|(_dep_name, (dep, features))| {
+ let mut deps = try!(deps.into_iter().map(|(dep, features)| {
let mut candidates = try!(registry.query(dep));
// When we attempt versions for a package, we'll want to start at the
// maximum version and work our way down.
fn resolve_features<'a>(cx: &mut Context, parent: &'a Summary,
method: Method)
- -> CargoResult<HashMap<&'a str,
- (&'a Dependency, Vec<String>)>> {
+ -> CargoResult<Vec<(&'a Dependency, Vec<String>)>> {
let dev_deps = match method {
Method::Everything => true,
Method::Required { dev_deps, .. } => dev_deps,
});
let (mut feature_deps, used_features) = try!(build_features(parent, method));
- let mut ret = HashMap::new();
+ let mut ret = Vec::new();
// Next, sanitize all requested features by whitelisting all the requested
// features that correspond to optional dependencies
if dep.is_optional() && !feature_deps.contains_key(dep.name()) {
continue
}
- let mut base = feature_deps.remove(dep.name()).unwrap_or(vec![]);
+ let mut base = feature_deps.remove(dep.name()).unwrap_or(Vec::new());
for feature in dep.features().iter() {
base.push(feature.clone());
if feature.contains("/") {
feature)));
}
}
- ret.insert(dep.name(), (dep, base));
+ ret.push((dep, base));
}
// All features can only point to optional dependencies, in which case they